Testing And Debugging

SoftwareShield System Feature Guide > Testing and Debugging

## Testing and Debugging

Like any other part of your software, you will need to test and debug your licensing functionality to ensure that the features and protections you intended have been implemented correctly in your code.

This section describes the features of the SoftwareShield System that support and assist you in your effort to test and debug your licensed software.

The following sub-sections describe key features and resources you should be aware of in order to make your testing and debugging as painless as possible.

1. Following ClientProtector Logic. This important section describes a key resource in implementing SoftwareShield Licensing - the ClientProtector flow-charts.
2. Compiling A License. This section describes a "best practice" approach to compiling and maintaining your license projects.
3. Cleaning A Development Machine. This section describes a critical step to perform when you are repeatedly testing on your development machine.
4. Cleaning A Test Machine. This section describes how to manage repeated testing on a test machine.
5. Controlling Debug Output. This section describes how to control debug output from the ClientProtector, as well as discussing debug vs. release server versions.
6. Registering / Un-registering ClientProtector Servers. This section describes how to manage switching back and forth (during development) from using the debug server to using the release server.
7. Test-Case Check-List. This section describes a sample set of test-cases we have provided that covers a variety of scenarios and situations you should consider executing before deploying your software.

#### Important Note On "Starting Fresh"

As you develop your licenses and integrate their functionality into your software, you will need to repeatedly test various scenarios and evolutions of your implementation. However, every time you execute the StartUp function of the ClientProtector, the state of the license will change, Alias Files will be written, the registry may be altered and you will eventually need to "start fresh" as though the application had be run for the first time.

In order to "start fresh" you must perform two steps:

1. You must "clean" your machine. This is covered in the sub-sections Cleaning A Development Machine and Cleaning A Test Machine. This is one step of two you must take when you need to restore your distributed license file, and the state of the machine itself to its original state.

2. The second step is to restore your distributed license file by simply recompiling (or re-copying) your license. This is covered in the sub-section Compiling A License.